home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 7
/
Apprentice-Release7.iso
/
Source Code
/
Pascal
/
Snippets
/
PNL Libraries
/
Libraries
/
SpriteWorld
/
SpriteWorld files
/
Headers
/
SpriteLayer.h
< prev
next >
Wrap
Text File
|
1996-10-29
|
3KB
|
122 lines
///--------------------------------------------------------------------------------------
// SpriteLayer.h
//
// Portions are copyright: © 1991-94 Tony Myles, All rights reserved worldwide.
//
// Description: constants, structures, and prototypes for sprite layers
///--------------------------------------------------------------------------------------
#ifndef __SPRITELAYER__
#define __SPRITELAYER__
#ifndef __SWCOMMON__
#include "SWCommonHeaders.h"
#endif
#ifndef __SPRITE__
#include "Sprite.h"
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#endif
///--------------------------------------------------------------------------------------
// sprite layer type definitions
///--------------------------------------------------------------------------------------
typedef struct SpriteLayerRec SpriteLayerRec;
typedef SpriteLayerRec *SpriteLayerPtr, **SpriteLayerHdl;
///--------------------------------------------------------------------------------------
// sprite layer data structure
///--------------------------------------------------------------------------------------
struct SpriteLayerRec
{
SpriteLayerPtr nextSpriteLayerP; // next sprite layer
SpriteLayerPtr prevSpriteLayerP; // previous sprite layer
SpritePtr headSpriteP; // head of sprite linked list
SpritePtr tailSpriteP; // tail of sprite linked list
long userData; // reserved for user
};
///--------------------------------------------------------------------------------------
// sprite layer function prototypes
///--------------------------------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
#endif
SW_FUNC OSErr SWCreateSpriteLayer(
SpriteLayerPtr *spriteLayerP);
SW_FUNC void SWDisposeSpriteLayer(
SpriteLayerPtr spriteLayerP);
SW_FUNC void SWAddSprite(
SpriteLayerPtr spriteLayerP,
SpritePtr newSpriteP);
SW_FUNC void SWRemoveSprite(
SpriteLayerPtr spriteLayerP,
SpritePtr oldSpriteP);
SW_FUNC void SWRemoveAllSpritesFromLayer(
SpriteLayerPtr srcSpriteLayerP);
SW_FUNC void SWSwapSprite(
SpriteLayerPtr spriteLayerP,
SpritePtr srcSpriteP,
SpritePtr dstSpriteP);
SW_FUNC void SWInsertSpriteAfterSprite(
SpriteLayerPtr spriteLayerP,
SpritePtr newSpriteP,
SpritePtr dstSpriteP);
SW_FUNC void SWInsertSpriteBeforeSprite(
SpriteLayerPtr spriteLayerP,
SpritePtr newSpriteP,
SpritePtr dstSpriteP);
SW_FUNC SpritePtr SWGetNextSprite(
SpriteLayerPtr spriteLayerP,
SpritePtr curSpriteP);
SW_FUNC void SWLockSpriteLayer(
SpriteLayerPtr spriteLayerP);
SW_FUNC void SWUnlockSpriteLayer(
SpriteLayerPtr spriteLayerP);
SW_FUNC void SWMoveSpriteLayer(
SpriteLayerPtr spriteLayerP);
SW_FUNC void SWCollideSpriteLayer(
SpriteWorldPtr spriteWorldP,
SpriteLayerPtr srcSpriteLayerP,
SpriteLayerPtr dstSpriteLayerP);
SW_FUNC SpritePtr SWFindSpriteByPoint(
SpriteLayerPtr spriteLayerP,
SpritePtr startSpriteP,
Point testPoint);
#ifdef __cplusplus
}
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset
#endif
#endif /* __SPRITELAYER__ */